home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / gfx / misc / gnuplot-3.7src.lha / gnuplot-3.7src / gnuplot-3.7.lha / gnuplot-3.7 / term / hp2648.trm < prev    next >
Text File  |  1998-11-26  |  5KB  |  197 lines

  1. /*
  2.  * $Id: hp2648.trm,v 1.14 1998/04/14 00:17:48 drd Exp $
  3.  *
  4.  */
  5.  
  6. /* GNUPLOT -  hp2648.trm */
  7.  
  8. /*[
  9.  * Copyright 1990 - 1993, 1998
  10.  *
  11.  * Permission to use, copy, and distribute this software and its
  12.  * documentation for any purpose with or without fee is hereby granted,
  13.  * provided that the above copyright notice appear in all copies and
  14.  * that both that copyright notice and this permission notice appear
  15.  * in supporting documentation.
  16.  *
  17.  * Permission to modify the software is granted, but not the right to
  18.  * distribute the complete modified source code.  Modifications are to
  19.  * be distributed as patches to the released version.  Permission to
  20.  * distribute binaries produced by compiling modified sources is granted,
  21.  * provided you
  22.  *   1. distribute the corresponding source modifications from the
  23.  *    released version in the form of a patch file along with the binaries,
  24.  *   2. add special version identification to distinguish your version
  25.  *    in addition to the base release version number,
  26.  *   3. provide your name and address as the primary contact for the
  27.  *    support of your modified version, and
  28.  *   4. retain our contact information in regard to use of the base
  29.  *    software.
  30.  * Permission to distribute the released version of the source code along
  31.  * with corresponding source modifications in the form of a patch file is
  32.  * granted with same provisions 2 through 4 for binary distributions.
  33.  *
  34.  * This software is provided "as is" without express or implied warranty
  35.  * to the extent permitted by applicable law.
  36. ]*/
  37.  
  38. /*
  39.  * This file is included by ../term.c.
  40.  *
  41.  * This terminal driver supports:
  42.  *  HP2648 and HP2647
  43.  *
  44.  * AUTHORS
  45.  *  Russell Lang
  46.  * 
  47.  * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
  48.  * 
  49.  */
  50.  
  51. /*
  52.  * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
  53.  */
  54.  
  55. #include "driver.h"
  56.  
  57. #ifdef TERM_REGISTER
  58. register_term(hp2648)
  59. #endif
  60.  
  61. #ifdef TERM_PROTO
  62. TERM_PUBLIC void HP2648init __PROTO((void));
  63. TERM_PUBLIC void HP2648graphics __PROTO((void));
  64. TERM_PUBLIC void HP2648text __PROTO((void));
  65. TERM_PUBLIC void HP2648linetype __PROTO((int linetype));
  66. TERM_PUBLIC void HP2648move __PROTO((unsigned int x, unsigned int y));
  67. TERM_PUBLIC void HP2648vector __PROTO((unsigned int x, unsigned int y));
  68. TERM_PUBLIC void HP2648put_text __PROTO((unsigned int x, unsigned int y, char *str));
  69. TERM_PUBLIC int HP2648_text_angle __PROTO((int ang));
  70. TERM_PUBLIC void HP2648reset __PROTO((void));
  71.  
  72. #define HP2648XMAX 720
  73. #define HP2648YMAX 360
  74.  
  75. #define HP2648VCHAR        12
  76. #define HP2648HCHAR        7
  77. #define HP2648VTIC        8
  78. #define HP2648HTIC        8
  79. #endif /* TERM_PROTO */
  80.  
  81. #ifndef TERM_PROTO_ONLY
  82. #ifdef TERM_BODY
  83. #define HP2648XLAST (HP2648XMAX - 1)
  84. #define HP2648YLAST (HP2648YMAX - 1)
  85.  
  86.  
  87. TERM_PUBLIC void HP2648init()
  88. {
  89.     fprintf(gpoutfile, "\033*m1m1n136,1cZ");
  90. /*                   1     2 3     4
  91.     1. mode
  92.     2. textsize=1
  93.     3. textangle=1
  94.         4. define line type 2 to be *   *   *   * etc.
  95. */
  96. }
  97.  
  98.  
  99. TERM_PUBLIC void HP2648graphics()
  100. {
  101.     fprintf(gpoutfile, "\033*dacZ");
  102. /*                   1     23
  103.     1. mode
  104.     2. clear grahics screen
  105.     3. graphics video on
  106. */
  107. }
  108.  
  109.  
  110. TERM_PUBLIC void HP2648text()
  111. {
  112. }
  113.  
  114.  
  115. TERM_PUBLIC void HP2648linetype(linetype)
  116. int linetype;
  117. {
  118.     static int hpline[] = { 1, 7, 1, 4, 5, 6, 8, 9, 10, 7, 2 };
  119.     fprintf(gpoutfile, "\033*m%dbZ", hpline[(linetype + 2) % 11]);
  120. }
  121.  
  122.  
  123. TERM_PUBLIC void HP2648move(x, y)
  124. unsigned int x, y;
  125. {
  126.     fprintf(gpoutfile, "\033*paf%d,%dZ", x, y);
  127.     /*               1     23     4
  128.        1        plot mode
  129.        2        "pen up"
  130.        3        goto absolute x,y
  131.        4        end command
  132.      */
  133. }
  134.  
  135.  
  136. TERM_PUBLIC void HP2648vector(x, y)
  137. unsigned int x, y;
  138. {
  139.     fprintf(gpoutfile, "\033*pbf%d,%dZ", x, y);
  140.     /*                     1 
  141.        1        "pen down"
  142.      */
  143. }
  144.  
  145.  
  146. TERM_PUBLIC void HP2648put_text(x, y, str)
  147. unsigned int x, y;
  148. char *str;
  149. {
  150.     HP2648move(x, y - HP2648VCHAR / 2 + 1);
  151.     fprintf(gpoutfile, "\033*l%s\n", str);
  152. }
  153.  
  154.  
  155. TERM_PUBLIC int HP2648_text_angle(ang)
  156. int ang;
  157. {
  158.     fprintf(gpoutfile, "\033*m%dnZ\n", ang + 1);
  159.     return TRUE;
  160. }
  161.  
  162. TERM_PUBLIC void HP2648reset()
  163. {
  164. }
  165.  
  166. #endif /* TERM_BODY */
  167.  
  168. #ifdef TERM_TABLE
  169. TERM_TABLE_START(hp2648_driver)
  170.     "hp2648", "HP2648 and HP2647",
  171.     HP2648XMAX, HP2648YMAX, HP2648VCHAR, HP2648HCHAR,
  172.     HP2648VTIC, HP2648HTIC, options_null, HP2648init, HP2648reset,
  173.     HP2648text, null_scale, HP2648graphics, HP2648move, HP2648vector,
  174.     HP2648linetype, HP2648put_text, HP2648_text_angle,
  175.     null_justify_text, line_and_point, do_arrow, set_font_null
  176. TERM_TABLE_END(hp2648_driver)
  177.  
  178. #undef LAST_TERM
  179. #define LAST_TERM hp2648_driver
  180.  
  181. #endif /* TERM_TABLE */
  182. #endif /* TERM_PROTO_ONLY */
  183.  
  184. #ifdef TERM_HELP
  185. START_HELP(hp2648)
  186. "1 hp2648",
  187. "?commands set terminal hp2648",
  188. "?set terminal hp2648",
  189. "?set term hp2648",
  190. "?terminal hp2648",
  191. "?term hp2648",
  192. "?hp2648",
  193. " The `hp2648` terminal driver supports the Hewlett Packard HP2647 and HP2648.",
  194. " It has no options."
  195. END_HELP(hp2648)
  196. #endif
  197.